The present invention relates to accessing databases over a network such as the Internet, and, in particular, to increasing efficiency by hosting data server functionality and data storage functionality on separate devices.
The complexity of a general purpose database system combined with the complexity of a general purpose operating system with which the database system interacts on a general purpose computer is typically sufficient to require employment of a full-time database administrator (DBA). It is the responsibility of the DBA to grapple with the complexity of the database system, the operating system, and the interactions between them, so that the other database users can take advantage of the database system without being exposed to underlying complexity. Unfortunately, employing a full-time DBA makes ownership of a useful database system an expensive option that may be outside the means of the small to medium sized enterprise.
Maintaining an in house computer system to host a database and Website is also an expensive undertaking even when the enterprise can afford a DBA or small team of information services (IS) professionals. Most computer equipment requires special air-conditioning and power supplies that are expensive to construct in a facility. The equipment itself is expensive and prone to become obsolete as new hardware devices are developed. Even if the equipment is leased, the facility costs remain, and the transfer to upgraded equipment may put a database out of service and consume considerable amounts of skilled IS labor.
One of the costs contributing to a network of database devices is the expense and complexity of each device. A conventional database server device includes a database server and a mass storage subsystem for storing the database files. The database server processes interact with the storage system, adding to the complexity of the database server and the database server device. This complexity both adds to the cost of the server device and decreases the reliability of the entire database on the network. In addition, this requirement to support the data files of the database forces the minimum database device configuration to include sufficient mass storage to support typical database applications adding to the cost of the system, also adding to the cost of the server device. Also because the device must support database server processes as well as storage functions, the device hardware and configuration can not be simultaneously optimized for both server functions and storage functions. Furthermore, including mass storage for the data files on the device inhibits utilization and sharing high-performance storage systems that may become available on the market after the database server device is procured.
Based on the foregoing, it is clearly desirable to provide a computer system that employs features that reduce the cost of maintaining the hardware and software of the database system and the Internet presence. It is further desirable to decrease the complexity of computer systems, and to provide management techniques that allow companies to reduce the size and cost of their in-house IS departments.
The embodiments of the disclosed techniques reduce the costs to small and medium sized enterprises of establishing and maintaining one or more databases using a network, such as the Internet. According to one aspect of the invention, a database server appliance includes a processor; a database server process, a special purpose operating system and non-volatile storage. The database server process persistently stores data files for the database on a second device connected to the database server appliance over a network. The special purpose operating system has features and configuration that are dictated by the database server and supporting components. The non-volatile storage is sufficiently large to store and execute instructions that cause the processor to perform as the database server process and the special purpose operating system and not sufficiently large to store all data files in the database.
According to another aspect of the invention, techniques for distributing database functions in a system of database devices includes performing database management tasks for a database on a first device connected to a network. The first device is designated a database host. Data file storage and retrieval tasks for the database are sent to a second device connected to the network. The second device is designated an off-host storage device.
These techniques increase reliability of the database on the network by insulating database server processes from the storage system. These techniques also allow sharing of a high performance storage system among multiple database server appliances.